#pragma once
#include "IPointcut.h"
#include "IMethodMatcher.h"
#include "ITypeFilter.h"
#include "Pointcut.h"

class CAllMethods : public IMethodMatcher
{
public:
	bool Matches(CJoinPoint&)
	{
		return true;
	}
};

class CAllTypes: public ITypeFilter
{
public:
	bool Matches(CJoinPoint&)
	{
		return true;
	}
};

class CEmptyPointcut : public CPointcut<CAllTypes,CAllMethods>
{
	friend class CAdviceBase;
private:
	CEmptyPointcut();
	static CEmptyPointcut* Instance();
};
